In the field of telecommunications and, in particular, telephony, there has been an on-going need to allow any given input to be connected to any given output, such as any given input telephone number to be routed to any desired telephone number. In the field of telecommunications, this has typically been done with what are known as crossbar (or crosspoint) switches. Each such switch is a switch matrix. In particular, a given type of network is known as a Clos network which is a type of multistage circuit switching network. FIG. 1 of the present application illustrates the architecture of a typical Clos network. Such a network takes advantage of connecting smaller crosspoint switches together to create a larger matrix router. The term “matrix router” is a matrix switch, typically of such a large dimensionality that it cannot be practically implemented in a single matrix switch.
In FIG. 1, N discrete inputs can be routed to N discrete outputs. In order to do this, the Clos network employs an input stage (also called an ingress stage or first stage) of m crosspoint switches, each having a dimensionality less than N, each crosspoint switch having n inputs and k outputs, where k≧n (all variables are integers). In order to allow non-blocking switching of any input (1 . . . N) to any output (1 . . . N), a middle stage (also called a core stage or second stage) of k matrix switches, each having m inputs and m outputs, and an output stage (also called an egress stage or third stage) comprising m crosspoint switches each having k inputs and n outputs is used. Thus, each of the m matrix switches of the input stage has a similar configuration to each of the m matrix switches of the output stage. This type of network is required when the circuit switching requirements of a network are greater than the reasonable capacity of the largest single crosspoint switch matrix (that is, the largest value of k≦N).
As noted in a treatise at Wikipedia.org, (www.wikipedia.org/wiki/Clos-network, rev 12 August 2012) the major advantage of the Clos network is that the size of the matrix switches can be significantly smaller than the entire switching network which could be implemented by one large crosspoint matrix switch.
Thus, the matrix router (crosspoint network) is defined by the three integers, n, m and k where n represents the number of inputs which feed into each of m crosspoint switches and k is the number of outputs at each crosspoint switch for the ingress and egress stages (first and third stages), while there are k matrix switches in the core stage, each having m inputs and m outputs. Thus, each middle (core) stage matrix switch is connected exactly once to each egress stage switch, while each ingress stage switch has exactly one output connected to each core stage switch. For strict-sense non-blocking without the need for rearrangeability (not requiring that an existing connection be rearranged in order to accommodate a new connection) the Clos requires k≧2n−1.
One problem with the classic Clos network is that it requires three stages of switching. However, connections through the center (core) crosspoint switches will begin to block new connections when there are connections of one input to multiple outputs (multicasting). The present invention provides an improved architecture for routing with enhanced multicast capability.